package org.springblade.modules.repair.vo.plan;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springblade.modules.repair.vo.PlanDetailLocationTypeVO;
import org.springblade.modules.repair.vo.PlanTemplateVO;
import org.springblade.modules.repair.vo.WorkTrackVO;

import java.math.BigDecimal;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

/**
 * @Description 离线保养缓存数据
 * @Author ysq
 * @Date 2024/1/16
 */
@Data
public class OfflineByPlanListVO {

	private Long id;

	@ApiModelProperty(value = "电梯id")
	private Long elevatorId;

	@ApiModelProperty(value = "工单类型 1: 保养, 2: 维修, 3: 困人, 4: 配件, 5: 事务, 6: 质检")
	private Integer typeStatus;

	@ApiModelProperty(value = "工单类型名称")
	private String typeStatusName;

	@JsonFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty(value = "开始时间")
	private Date planDate;

	@ApiModelProperty(value = "结束时间")
	private Date finishDate;

	@ApiModelProperty(value = "0: 未延迟, 1: 延迟")
	private Integer isDeferred;

	@ApiModelProperty(value = "状态")
	private Integer status;

	@ApiModelProperty(value = "状态名称")
	private String statusName;

	@ApiModelProperty(value = "工单更新时间")
	private Date updateTime;

	@ApiModelProperty(value = "工单创建时间")
	private Date createTime;

	private String workUserInfos;

	@ApiModelProperty(value = "工单人员信息")
	private LinkedList<PlanOrderHomeUserVO> workUserInfoList;

	@ApiModelProperty(value = "项目id")
	private Long buildingId;

	@ApiModelProperty(value = "项目名称")
	private String buildingName;

	@ApiModelProperty(value = "项目纬度")
	private BigDecimal latitude;

	@ApiModelProperty(value = "项目经度")
	private BigDecimal longitude;

	@ApiModelProperty(value = "项目别名，多个逗号隔开")
	private String aliasStr;

	@ApiModelProperty(value = "电梯位置")
	private String elevatorAddress;

	@ApiModelProperty("紧急程度 1:非常紧急 2:紧急 3:普通 4:较低")
	private Integer emerProcType;

	/**
	 * 保养详情
	 */
	@ApiModelProperty("保养名称")
	private String planCheckName;

	@ApiModelProperty("停梯状态： 1-正常 2-停梯")
	private Integer elevatorIsStop;

	@ApiModelProperty("逾期文案")
	private String overdueName;

	@ApiModelProperty("1:非年审，2:年审")
	private Integer auditType;

	@ApiModelProperty("电梯年审状态1:非年审，0:年审")
	private Integer elevatorAuditType;

	@ApiModelProperty("超时文案")
	private String timeliness;

	@ApiModelProperty(value = "模板耗时 天")
	private Integer workDay;

	@ApiModelProperty(value = "模板耗时 时")
	private Integer workHour;

	@ApiModelProperty(value = "模板耗时 分钟")
	private Integer workMin;

	@ApiModelProperty(value = "工作项记录")
	private List<PlanTemplateVO> planTemplateList;

	@ApiModelProperty(value = "工作项类型统计")
	private Map<String,Object> planLocationTypeList;
}
